home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / tsql / doc / tsql.mail / 000079_jcliffor@is-4.stern.nyu.edu _Fri Apr 9 18:37:06 1993.msg < prev    next >
Internet Message Format  |  1996-01-31  |  12KB

  1. Received: from IS-4.STERN.NYU.EDU by optima.cs.arizona.edu (5.65c/15) via SMTP
  2.     id AA12630; Fri, 9 Apr 1993 15:29:38 MST
  3. Received: by is-4.stern.nyu.edu (4.1/1.34)
  4.     id AA12660; Fri, 9 Apr 93 18:37:09 EDT
  5. Date: Fri, 9 Apr 93 18:37:06 EDT
  6. From: Jim Clifford <jcliffor@is-4.stern.nyu.edu>
  7. To: tsql@cs.arizona.edu
  8. Subject: Further Discussion of the Benchmark Data
  9. Message-Id: <CMM.0.90.2.734395026.jcliffor@is-4.stern.nyu.edu>
  10.  
  11. Colleagues:
  12.  
  13. Apparently my comments on the notion of a "key" in an historical
  14. database, and my concern about the bias of the proposed Benchmark Data
  15. in Section 3, were not clearly stated.
  16.  
  17. I will repeat my earlier remarks here, and number the points, because
  18. I believe that we can get agreement about some of them, and perhaps
  19. have some discussion about others of them.
  20.  
  21. *********************************************************************
  22. (1) I believe that the following criterion should be used in
  23. populating the agreed-upon schema with data:
  24.  
  25.    the database instance should accord with ALL AND ONLY those 
  26.    constraints which are explicitly stated.
  27. *********************************************************************
  28. (2) The proposed database instance violates the AND ONLY part of this
  29. criterion in at least the following way (and possibly others):
  30.  
  31. there is an implicit assumption about the meaning of being a "key"
  32. that I believe is (i) stronger than necessary, and (ii) at the very
  33. least should at least be made explicit.
  34. *********************************************************************
  35. (3) The only explicit assumption stated about, e.g., the "key"
  36. attribute Name in relation EMP is that it obeys the "snapshot function
  37. dependency"
  38.    Name --> Salary, Dept, Gender, D-birth 
  39.  
  40. This means that for all snapshots, no 2 tuples can have the same Name.
  41. I assume, therefore, that this is the intended meaning of the use of
  42. the term "key".
  43. *********************************************************************
  44. (4) However, the proposed database also assumes that the "key"
  45. attribute Name is time-invariant. This is a stronger condition than
  46. the notion of "key" as a "snapshot function dependency," and biases
  47. the proposed benchmark in favor of the tuple-stamped models.
  48. *********************************************************************
  49.  
  50. DISCUSSION ABOUT THESE 4 POINTS:
  51.  
  52. (1) So far, no one has commented on this. I assume it is
  53. non-controversial.
  54.  
  55. (3) Ditto -- I gather that everyone views this as the meaning of the
  56. term "key" in the context of an historical relation, i.e., that at
  57. each time point t, there can be AT MOST 1 TUPLE in the relation with a
  58. given value for the key.
  59.  
  60. My points numbered (2) and (4) above were both attempts to make the
  61. same point, in a general kind of way in (2) and more specifically in
  62. (4).  These two points need elaboration.
  63.  
  64. In the Draft Proposal "Section 3.2 The Proposed Data," beginning with
  65. the sentence "There are two employees, Ed and Di.", there is an
  66. implied connection between these 2 "people" in the real world and the
  67. strings and integers with which we populate the database.
  68. Specifically,it is implied that a real-world person (let's call him
  69. *ED* to distinguish him from the character string "Ed" we store as his
  70. Name in the database) is identified with all the tuples in the
  71. database storing the character string "Ed" as the value of the NAME
  72. attribute
  73.  
  74. The reason this biases the database instance in favor of the ungrouped
  75. models is that it obscures a problem with the ungrouped models (as
  76. pointed out in [CCT93]), namely that these models do NOT provide as
  77. much built-in management of temporal data as the grouped models do.
  78. Rather, they either (i) put unnecessary restrictions on the types of
  79. data they will manage, or (ii) put an unnecessary burden on the end
  80. user.
  81.  
  82.  
  83. I want to elaborate on these two points, and in so doing I think that
  84. I will be answering Christian's two specific questions and/or
  85. comments, which I will here label (a) and (b), viz.:
  86.  
  87. (a) It would be of great help if someone (Jim?) could exemplify what is
  88. missing in the current instance. What can we add to the instance in
  89. order not to violate the AND ONLY criterion? 
  90.  
  91.       AND
  92.  
  93. (b) The standard relational model and conventional normalization and
  94. dependency theory cannot capture the connection between Emp tuples and
  95. the real-world persons they represent. There is no real notion of
  96. object identity (existence). When the key of a tuple changes its
  97. value, there in no way of telling that the tuple still represent the
  98. same real-world person. For example, if the tuple for Di, (Di, 30K),
  99. is changed to (Jo, 30K) because Di changes name, we cannot capture
  100. that both tuples belong to the same person and that Name thus is
  101. time-varying.
  102.  
  103.  
  104. **********************
  105. *  The Saga of *ED*  *
  106. **********************
  107.  
  108. Let us suppose that on or about 1/1/88 (remember, we are not dealing
  109. with Transaction Time yet) our employee *ED*, who previously went by
  110. the name "Ed", informs his company that as of 1/1/88 he wants his name
  111. to be "Edward".  The company is using a Temporal Database.  One of 2
  112. possibilities arises at this point. IF the database has a notion of
  113. KEY as we seem to agree that it should have, then the database can
  114. support this change in Name. If, on the other hand, the database
  115. disallows any changes to the value of a key AT ANY TIME (which is a
  116. constraint that the Proposed data satisfies, but the Proposed Schema
  117. does not require), then *ED* will be told that the Temporal Database
  118. system will not allow this. In this case, we are done. We are either
  119. happy or unhappy with a database which cannot accurately model the
  120. real-world, in this case by being unable to reflect *ED*'s name
  121. change. I for one am not happy with a database model that makes this
  122. restriction but, if it is made by a model, it should be made
  123. explicitly.
  124.  
  125. So, let us suppose that the Temporal Database does NOT have this
  126. stronger constraint on a key, i.e., that someone performs whatever
  127. update(s) are required in the Temporal Database to reflect *ED*'s name
  128. change.
  129.  
  130. Let us consider at 2 types of operations on the Temporal Database that
  131. pertain to this change in *ED*'s name, and let us look at them in the
  132. context of an Ungrouped Temporal Model and a Grouped Temporal Model.
  133. First, the UPDATE to the database to reflect the name change, and
  134. second, any subsequent QUERY about *ED* which an end user might ask of
  135. the database (*ED* himself not being available to answer the question
  136. in person).
  137.  
  138. THE UPDATE in UNGROUPED MODELS.
  139. My reading of the literature describing these models would indicate
  140. that someone in the organization authorized to make UPDATES would
  141. reflect this change by the addition of a tuple to the relation,
  142. something like (1/1/88, "Edward", 50K, Male, ...etc.). There might
  143. also be some modification to 1 or more tuples already in the relation
  144. (to "close" their period of validity, e.g.).
  145.  
  146. THE UPDATE in GROUPED MODELS. 
  147.  
  148. In these models, someone in the organization authorized to make
  149. UPDATES would attempt to locate the tuple recording information about
  150. *ED* by searching for the tuple that satisfies the selection
  151. restriction that Name(NOW) = "Ed".  Note that by the definition of
  152. "key", there can be at most 1 of these.  (ASIDE: If no such tuple is
  153. found, then perhaps other queries might be attempted, but we are
  154. presuming that there is a tuple somewhere in the relation that has
  155. *ED*'s data, and it will be found.)  Once found, the tuple is updated
  156. with the new <1/1/88, "Edward"> information in whatever way the model
  157. requires.
  158.  
  159. THE QUERY in UNGROUPED MODELS. 
  160.  
  161. For a query abut *ED* to return COMPLETE information about him, in
  162. Temporally Ungrouped Models IT IS UP TO THE USER to ask for the union
  163. of those tuples in the relation with NAME="Ed" with those tuples in
  164. the relation with NAME="Edward".  In fact, it is actually worse than
  165. this.  Our key constraint only says that any particular time t there
  166. can be at most one "Ed" or one "Edward" -- however, there could be
  167. other "ED"'s or "Edward"'s at other times not in our friend *ED*'s
  168. lifespan.  So, the user must know ALL of *ED*'s names and WHEN he had
  169. them in order to be sure to get all of the information about *ED* in
  170. the database.  So, a big burden is placed on the end user: the end
  171. user must already know a great deal about *ED* in order to find out
  172. information about *ED*.
  173.  
  174. THE QUERY in GROUPED MODELS.  For a query abut *ED* to return COMPLETE
  175. information about him, in Temporally Grouped Models IT IS ONLY
  176. NECESSARY for the end user to know the name of *ED* at some point in
  177. time (perhaps, e.g., NOW). The MODEL is responsible for the rest,
  178. because the model manages the temporal dimension of the data about
  179. *ED*, and places (I believe) only minimal and reasonable demands on
  180. the end user.
  181.  
  182. Clearly there is a burden to be placed on someone in the management of
  183. (temporal) data. There are roughly 3 places to place this burden
  184. and of course the burden is to be shared among them in some way: (a) on
  185. the DBMS, (b) on the UPDATER, and (c) on the QUERYer. 
  186.  
  187. I believe that it makes more sense to place a heavier burden on the
  188. UPDATER than on the QUERYer. The UPDATER presumably knows --- or
  189. should know --- quite a lot about what he/she intends to update, and
  190. it seems reasonable to require this. So, the UPDATER should have to
  191. know that *ED*'s Name in the database is currently "Ed" -- hardly an
  192. unreasonable burden. However, the QUERYer can reasonably be presumed
  193. to know little (or at least less) about the database, and is in fact
  194. posing a QUERY to learn more. So, it seems reasonable to design a
  195. model that REQUIRES AS LITTLE AS POSSIBLE of the QUERYer.  Expecting
  196. the QUERYer to know at least something about *ED* --- like his Name at
  197. some point in time --- in order to learn more about him seems
  198. reasonable; expecting the QUERYer to know *ED*'s Name at every point
  199. in time does not.
  200.  
  201. So, my recommendation is to modify the Proposed Date to include the
  202. following:
  203.  
  204. Assume that the following "event" occurs in the real-world that we are
  205. modeling: *ED* changes his name on 1/1/88 to "Edward"
  206.  
  207. We can assume that all of his other characteristics are 
  208. as they are stated in the Proposed Data section. 
  209.  
  210. (This is also my answer to Christian's question (a) It would be of
  211. great help if someone (Jim?) could exemplify what is missing in the
  212. current instance. What can we add to the instance in order not to
  213. violate the AND ONLY criterion?)
  214.  
  215. I believe that without such an addition, the Proposed Benchmark would
  216. not be "independent" of any existing model/language proposal, which is
  217. in fact one of its major goals.
  218.  
  219. REFERENCES
  220.  
  221. [CCT93] ``On Completeness of Query Languages for Grouped and Ungrouped
  222. Historical Data Models'', J. Clifford, A. Croker and A. Tuzhilin,
  223. in {\em Temporal Databases: Theory, Design, and Implementation}, 1993.
  224.  
  225. I welcome your comments.
  226.  
  227. --jim--
  228.  
  229. ************************************************************************
  230. Jim Clifford                                     jclifford@stern.nyu.edu
  231. Associate Professor                              TEL: (212) 998-0803
  232. Department of Information Systems                FAX: (212) 995-4228
  233. Leonard N. Stern School of Business
  234. New York University
  235. Management Education Center
  236. 44 West 4th Street, Suite 9-74
  237. New York, NY 10012-1126
  238. ************************************************************************